package com.chzc.goods.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chzc.goods.req.GoodsREQ;
import com.chzc.po.Goods;
import com.chzc.util.Result;

import java.util.List;

/**
 * 商品表 服务类
 * @author CV大魔王
 * @since 2021-05-27
 */
public interface IGoodsService extends IService<Goods> {


    /**
     * 条件分页查询商品列表
     * @param req 查询条件
     * @return 商品列表
     */
    IPage<Goods> queryPageList(GoodsREQ req);


    /**
     * 添加商品
     * @param goods 商品信息
     * @return 结果信息
     */
    Result addGoods(Goods goods);


    /**
     * 删除商品
     * @param id 商品id
     * @return 商品信息
     */
    Result deleteById(String id);


    /**
     * 更新商品信息
     * @param goods 商品
     * @return 封装商品更新信息
     */
    Result updateGoods(Goods goods);


    /**
     * 根据id查询商品
     * @param id 商品id
     * @return 商品
     */
    Goods findById(String id);


    /**
     * 进入秒杀商品列表
     * @return 今日正在秒杀的商品
     */
    List<Goods> commoditiesOfTheDay();


    /**
     * 即将开始的秒杀列表
     * @return 今日未开始的秒杀商品列表
     */
    List<Goods> notYetStarted();


    /**
     * 获取商品实时库存
     * @param goodsId 商品id
     * @return 商品实时库存
     */
    Integer realTimeInventory(String goodsId);

}
